import re
# * 匹配前一个字符出现0次或者无限次,即可有可无
print(re.search('he*', 'heysfwvyfajg').group())
print(re.search('he\w*', 'heysfwvyfajg').group())
# + 匹配前一个字符出现1次或者无限次,至少有一次   相当于{1,}
print(re.search('<[a-z]+>', '<head>').group())
print(re.search('<[a-z]{1,}>', '<h>').group())
# print(re.search('<[a-z]+>', '<>').group())            # 匹配不到

# ? 匹配前一个字符出现1次或者0次,即要么有1次,要么没有
print(re.search('he\w?', 'he你好').group())

# {m} 匹配前一个字符出现m次
print(re.search('he{2}', 'heeeee').group())
print(re.search('he\w{2}', 'heeeee').group())
print(re.search('he.{2}', 'heeeee').group())

# {m,n} 匹配前一个字符出现从m到n次
# 注意:{m,n}中间不能有空格
# <h1><head><div><span>
print(re.search('<[a-z0-9]{1,8}>', '<h1>').group())
print(re.search('<[a-z0-9]{1,8}>', '<div>').group())
print(re.search('<[a-z0-9]{1,8}>', '<span>').group())

# {m,}匹配前一个字符至少出现m次
print(re.search('<[a-z0-9]{1,}>', '<h1>').group())
print(re.search('<[a-z0-9]{1,}>', '<h1gajgjygucwgficgfwe>').group())
print(re.search('<[a-z0-9]{1,}>', '<>').group())           # 不可以匹配






